/**
 * @MovieData.as
 *
 * @author sodaChen mail:asframe@qq.com
 * @version 1.0
 * <br>Copyright (C), 2013 asFrame.com
 * <br>This program is protected by copyright laws.
 * <br>Program Name:ASFrame
 * <br>Date:2013-6-26
 */
package com.asframe.display.data
{
	import com.asframe.lang.IDestory;

	import flash.display.Bitmap;
	import flash.display.BitmapData;

	/**
	 * 包含一系列帧数据的标签集合对象
	 * @author sodaChen
	 * Date:2013-6-26
	 */
	public class MovieData implements IDestory
	{
		/** 引用次数 **/
		public var ref:int = 0;
		/** 帧标签名称 **/
		public var label:String;
		/** 每帧的图像信息 **/
		public var bitmapDatas:Vector.<BitmapData>;
		/** 包含每帧偏移的数据，注意，该值有可能为空，表示图片是平均分配的，不需要额外调整坐标 **/
		public var frameDatas:Vector.<FrameData>;
		/** 通用缩放比例值，一开始初始化图像的缩放比例 **/
		public var scale:Number = 1;
		/** 帧动画的配置数据 **/
		public var config:*;

		public function MovieData(bitmapDatas:Vector.<BitmapData> = null,
								  frameDatas:Vector.<FrameData> = null,
								  label:String = null,
								  scale:Number = 1):void
		{
			this.label = label;
			this.bitmapDatas = bitmapDatas;
			this.frameDatas = frameDatas;
			this.scale = scale;
			var bmp:Bitmap = new Bitmap();
		}
		/**
		 * 复制一个新的方向帧数据
		 * @param newScale
		 * @return
		 *
		 */
		public function clone(newScale:Number):MovieData
		{
			return new MovieData(bitmapDatas,frameDatas,label,newScale);
		}
		public function destroy(o:* = null):void
		{
			ref--;
			if(ref <= 0)
			{
				if(bitmapDatas != null)
				{
					for (var i:int = 0; i < bitmapDatas.length; i++)
					{
						bitmapDatas[i].dispose();
					}
					bitmapDatas = null;
				}
				if(frameDatas != null)
				{
					for (var j:int = 0; j < frameDatas.length; j++)
					{
						frameDatas[j].destory();
					}
				}
			}
		}
	}
}
